﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Data.Metadata.Edm;

namespace SoftHotel.Models
{
    public class ClienteDAO : DbContext
    {
        public ClienteDAO() : base("conexionPrincipalDAO") { }

        Conexion conexionBD = new Conexion();
        public DbSet<Cliente> clientes { get; set; }
        public DbSet<Parametro> parametros { get; set; }
        
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Cliente>().ToTable("Cliente");
            modelBuilder.Entity<Parametro>().ToTable("Parametro");
        }

        public void RegistrarCliente(Cliente cliente)
        {
            string consulta = "";
            if (string.IsNullOrEmpty(cliente.apellidoMaterno)) cliente.apellidoMaterno = "";
            if (string.IsNullOrEmpty(cliente.apellidoPaterno)) cliente.apellidoPaterno = "";
            if (string.IsNullOrEmpty(cliente.nombres)) cliente.nombres = "";
            if (string.IsNullOrEmpty(cliente.razonsocial)) cliente.razonsocial = "";
            if (string.IsNullOrEmpty(cliente.email)) cliente.email = "";

            cliente.estado = 1;

            consulta = "INSERT INTO CLIENTE (nombres, apellidoPaterno, apellidoMaterno, email, tipoDoc, numDoc, tipo, razonsocial, estado) " +
                        "VALUES (@nomb, @apat, @amat, @email, @tipoDoc, @numDoc, @tipo, @rs, @estado)";
            SqlCommand command = new SqlCommand();
            conexionBD.AbrirConexion();
            command = conexionBD.connection.CreateCommand();
            command.CommandText = consulta;


            command.Parameters.Add("@nomb", SqlDbType.VarChar, 50).Value = cliente.nombres;
            command.Parameters.Add("@apat", SqlDbType.VarChar, 50).Value = cliente.apellidoPaterno;
            command.Parameters.Add("@amat", SqlDbType.VarChar, 50).Value = cliente.apellidoMaterno;
            command.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = cliente.email;
            command.Parameters.Add("@tipoDoc", SqlDbType.Int).Value = cliente.tipoDoc;
            command.Parameters.Add("@numDoc", SqlDbType.VarChar, 20).Value = cliente.numDoc;
            command.Parameters.Add("@tipo", SqlDbType.Int).Value = cliente.tipo;
            command.Parameters.Add("@rs", SqlDbType.VarChar, 100).Value = cliente.razonsocial;
            command.Parameters.Add("@estado", SqlDbType.Int).Value = cliente.estado;

            conexionBD.EjecutarComando2(command);

        }

    }
}